Today it is possible for a businessperson to use an e-mail application and a calendar application (i.e. an application for keeping track of appointments) on a mobile phone or a palm (handheld) computer (or some other mobile terminal) using a data store on the mobile phone or palm computer, and have an assistant use the same applications on a desktop computer to keep track of e-mail sent and received by the assistant on behalf of the businessperson, and to keep track of appointments for the businessperson using a data store on the desktop computer. Thus, when changes are made to either of the data stores (the data store on the mobile device and the data store on the desktop computer), each including data items (also called here data units) for both the e-mail and the calendar application, the data stores need to be synchronized. In synchronizing respective data stores (i.e. synchronizing both the data items and the data structure or data organization of the two data stores) used by two applications running on different equipment, the usual method is to arrange that the contents of the two data stores are set to correspond to each other based on a protocol in which changes since a last synchronization are communicated, conflicts between changes made on both pieces of equipment are resolved (according to some policy), and changes are made to either the data items or their organization or both in one or both of the data stores.
A facility is being developed for synchronizing such data stores based on what is called SyncML (synchronization markup language), being developed under the so-called SyncML Initiative. (See http://www.syncml.org/ for information about SyncML, including standards and specifications for SyncML, and the SyncML Initiative, especially including the SyncML Representation Protocol and the SyncML Sync Protocol.) SyncML is an open industry standard for a common language for universal synchronization of remote data (i.e. data items stored in different equipment and so in different data stores) and personal information across multiple networks, platforms and devices. With SyncML, data items, but not yet data structure, can be synchronized on different devices connected via one or more interconnecting networks, including, for example, a Universal Mobile Telecommunications System (UMTS) Radio Access Network (UTRAN) and the Internet, where the communication may be wireless in whole or in part or may be wireline. Thus, the devices may communicate via, for example, fixed networks (including wireless networks), infrared, cable, or Bluetooth.
Until now, the progress of mobile data synchronization has mostly been determined by restrictions. Data store synchronization has been based on a set of different, proprietary protocols, each functioning only with a very limited number of devices, systems and data types. These non-interoperable technologies have complicated the tasks of users, manufacturers, service providers, and developers. Further, a proliferation of different, proprietary data store synchronization protocols has placed barriers to the extended use of mobile devices, has restricted data access and delivery and limited the mobility of the users.
As the popularity of mobile computing and communications devices grows, users want access to updated information and applications wherever they are, and using whatever device is available (prompting a need for an open standard such as the SyncML standard). Sometimes, two different devices a user would like to have synchronized (i.e. would like to have the respective data stores on the different devices synchronized) can differ in capability; one device may not be able to handle all the data fields of the records maintained in the first device. In such a situation, the user is usually prompted to set up a mapping or other synchronization arrangement for indicating how fields that occur in the data store of one device but not in the other, i.e. so-called problem fields, are to be handled. This setting up usually happens beforehand, and often involves a tedious mapping of data fields of the first device to the fields of the second device. As onerous as the setting up may be, not doing so can lead to loss of data.
The mapping of problem fields between a first and second data store is described for example in U.S. Pat. No. 5,701,423 to Crozier, in which it is disclosed that a user is to map all the fields in the first data store to respective fields in the second data store before synchronization, irrespective of whether the user uses the fields. Such a setting up process is time-consuming and in some cases a waste of time (when the user ends up never using the problem fields), and leads to problems if changes are made to the configuration of either of the devices.
In a typical synchronizing scenario today, a user will operate two different devices and will engage a synchronizing service, operating a third machine acting as a server in a client/server model, to synchronize the two devices.
What is needed is a way by which user of a first device with problem fields in respect to another, second device (fields not present in the data store on the device but present in the data store on the other device to which the first device is being synchronized), can be alerted to the use of the problem field in the first device, but not alerted until actual use occurs, so that the user is not unnecessarily burdened by having to take care of mapping problems before they actually occur.